/*******************************************************************
 * 外语翻译平台(translate) 
 *
 * 成都一亿信息技术公司 版权所有
 * 
 * Copyright (C) 2010 Transer Information Technology Co., Ltd.
 *
 * @Version : 1.0  2010-12-28 下午09:22:20
 *
 * TemplateGenerator.java 
 *
 *******************************************************************/
package com.transer.template;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Locale;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

/**
 * class defination are there
 * 
 * @author Mark
 * 
 * @version 1.0 ywengineer@gmail.com
 * 
 */
public class MailTemplateBuilder {
	private static final Configuration config;

	static {
		config = new Configuration();
		try {
			URI root = MailTemplateBuilder.class.getResource("/com/transer/template").toURI();
			File f = new File(root);
			config.setDirectoryForTemplateLoading(f);
			config.setEncoding(Locale.getDefault(), "utf-8");
		} catch (IOException e) {
			e.printStackTrace();
		} catch (URISyntaxException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 不能在外部创建该模板构建器
	 */
	private MailTemplateBuilder() {
	}

	/**
	 * 构建邮件模板
	 * 
	 * @param fileName
	 *            文件名称
	 * @param param
	 *            参数
	 * @return 模板
	 */
	public static final String build(String fileName, Map<String, Object> param) {
		try {
			Template template = config.getTemplate(fileName);
			ByteArrayOutputStream buffer = new ByteArrayOutputStream();
			template.process(param, new OutputStreamWriter(buffer));
			return buffer.toString();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
		return "";
	}
}
